package com.zbkj.dal.entity.profit;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zbkj.dal.base.enums.ShareProfitSceneEnums;
import lombok.Data;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author JinXinyu
 * @date 2024-02-12 13:58:54
 */
@Data
@TableName("eb_share_profit_record")
public class ShareProfitRecord implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 单据id
     */
    @TableField("share_profit_no")
    private String shareProfitNo;

    /**
     * 收款用户编号
     */
    @TableField("payee_code")
    private String payeeCode;

    /**
     * 收款用户类型：用户/店铺/平台
     */
    @TableField("payee_type")
    private String payeeType;

    /**
     * 来源人id
     */
    @TableField("source_user_id")
    private Integer sourceUserId;

    /**
     * 来源人名称
     */
    @TableField("source_user_name")
    private String sourceUserName;

    /**
     * 分润方 上级/上上级/店长/店铺/平台
     */
    @TableField("share_party")
    private String shareParty;

    /**
     * 摘要图片
     */
    @TableField("image_path")
    private String imagePath;

    /**
     * 分润场景
     *
     * @see ShareProfitSceneEnums
     */
    @TableField("scene_code")
    private String sceneCode;

    /**
     * 账期
     */
    @TableField("bill_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate billDate;

    /**
     * 完成时间
     */
    @TableField("finished_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime finishedTime;

    /**
     * 单据id
     */
    @TableField("biz_order_no")
    private String bizOrderNo;

    /**
     * 分润模式 FIXED-固定值/FRACTION-比例/RESIDUAL-剩余
     */
    @TableField("share_model")
    private String shareModel;

    /**
     * 订单金额
     */
    @TableField("order_amount")
    private BigDecimal orderAmount = new BigDecimal(0);

    /**
     * 分润金额
     */
    @TableField("share_amount")
    private BigDecimal shareAmount = new BigDecimal(0);

    /**
     * 规则金额
     */
    @TableField("role_amount")
    private BigDecimal roleAmount = new BigDecimal(0);

    /**
     * 分润金额
     */
    @TableField("real_amount")
    private BigDecimal realAmount = new BigDecimal(0);

    /**
     * 分润状态
     *
     * @see com.zbkj.dal.base.enums.ShareSettleStatusEnums
     */
    @TableField("share_status")
    private String shareStatus;

    @TableField("remark")
    private String remark;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除
     */
    @TableField("is_deleted")
    private Integer deleted;

}
